package com.fowo.api.model.nav.sell.order.detail;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.excel.ImageConvert;
import com.fowo.api.sys.entity.SysFile;
import java.util.List;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 订单管理产品信息 导入导出辅助模型 */
@Getter
@Setter
public class NavSellOrderDetailExcelPo {

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "所属订单管理")
  private String parentNavSellOrderOrderId;

  @ExcelIgnore
  @ExcelProperty(value = "所属订单管理")
  private Long parentNavSellOrder;

  @Size(max = 50, message = "平台单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "平台单号")
  private String platformOrderId;

  @Size(max = 50, message = "参考号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "参考号")
  private String referenceId;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品来源")
  private String itemFromName;

  @ExcelProperty(value = "图片", converter = ImageConvert.class)
  private List<SysFile> img;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品")
  private String productIdName;

  @ExcelIgnore
  @ExcelProperty(value = "产品")
  private Long productId;

  @Size(max = 50, message = "品名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "品名")
  private String productName;

  @Size(max = 50, message = "SKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "SKU")
  private String sku;

  @Size(max = 50, message = "MSKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "MSKU")
  private String msku;

  @Size(max = 50, message = "ASIN长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "ASIN")
  private String asin;

  @ExcelProperty(value = "销售收益")
  private java.math.BigDecimal salesRevenueAmount;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品类型")
  private String typeName;

  @ExcelIgnore
  @ExcelProperty(value = "商品类型")
  private Long type;

  @ExcelProperty(value = "单价")
  private java.math.BigDecimal price;

  @ExcelProperty(value = "数量")
  private Integer quantity;

  @ExcelProperty(value = "可用量")
  private Integer availableQuantity;

  @Size(max = 1000, message = "变体属性长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "变体属性")
  private String attribute;

  @Size(max = 50, message = "中文申报名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "中文申报名")
  private String chineseName;

  @Size(max = 50, message = "英文申报名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "英文申报名")
  private String englishName;

  @Size(max = 50, message = "备货店铺长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "备货店铺")
  private String shopInfoShopName;

  @ExcelIgnore
  @ExcelProperty(value = "备货店铺")
  private Long shopInfo;

  @ExcelProperty(value = "客付税费")
  private java.math.BigDecimal tax;

  @ExcelProperty(value = "小费")
  private java.math.BigDecimal tip;

  @ExcelProperty(value = "折扣")
  private java.math.BigDecimal discount;

  @ExcelProperty(value = "商品金额")
  private java.math.BigDecimal amount;

  @ExcelProperty(value = "预估出库成本")
  private java.math.BigDecimal thinkDeliveryCost;

  @ExcelProperty(value = "预估运费")
  private java.math.BigDecimal deliveryThinkFreight;

  @ExcelProperty(value = "客付运费")
  private java.math.BigDecimal deliveryRealFreight;

  @ExcelProperty(value = "交易费")
  private java.math.BigDecimal transactionCost;

  @ExcelProperty(value = "平台其他费")
  private java.math.BigDecimal otherAmount;

  @ExcelProperty(value = "采购成本")
  private java.math.BigDecimal cgPriceAmount;

  @ExcelProperty(value = "库存明细成本")
  private java.math.BigDecimal stockAostAmount;

  @ExcelProperty(value = "实际出库成本")
  private java.math.BigDecimal wmsOutboundCostAmount;

  @ExcelProperty(value = "COD费用")
  private java.math.BigDecimal codAmount;

  @ExcelProperty(value = "实际运费")
  private java.math.BigDecimal wmsShippingPriceAmount;

  @ExcelProperty(value = "礼品包装费")
  private java.math.BigDecimal giftWrapAmount;

  @ExcelProperty(value = "销售税")
  private java.math.BigDecimal saleTax;

  @ExcelProperty(value = "积分成本")
  private java.math.BigDecimal pointsGrantedAmount;

  @ExcelProperty(value = "其他费用")
  private java.math.BigDecimal otherFee;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "平台订单商品状态")
  private String platformStatus;

  @Size(max = 50, message = "商品备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品备注")
  private String remark;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "估算重量单位")
  private String deliveryThinkWeightUnit;

  @ExcelProperty(value = "估算重量")
  private java.math.BigDecimal deliveryThinkWeight;

  @Size(max = 10000, message = "商品标题长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品标题")
  private String goodsTitle;

  @Size(max = 50, message = "商品ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品ID")
  private String goodsCode;
}
